#pragma once

#include <vld.h>

#include "BeanieEngine.h"

#include "GameState.h"
#include "GameTestState.h"
#include "GamePlayState.h"
#include "GameLoseState.h"
#include "GameWinState.h"
#include "GameMenuState.h"
#include "GameOptionsState.h"
#include "GameCreditsState.h"

class Game
{
private:
	bool m_running;
	BeanieCore m_core;
	BeanieDebug m_debug;
	BeanieDebug m_text;

	FSMSystem m_system;
public:
	Game(){}
	~Game(){release();}

	void init(Handle* a_handle);
	void release();

	void input();
	void update();
	void draw();

	void preLoop();
	void postLoop();

	bool running(int& a_exit);
};